package jfuzzyprincepless.zarchive.puntaelenaexperiments;

import puntaelena.graphsupport.GraphSupportFront;
import puntaelena.graphsupport.IGraphGenerator;
import laboratoryQ.experiment.settings.BaseExperimentSettings;
import laboratoryQ.experiment.settings.SettingsAnnotations.Hidden;
import laboratoryQ.experiment.settings.SettingsAnnotations.IgnoreWhenCheck;
import laboratoryQ.experiment.settings.SettingsAnnotations.Increase;

public class FGraphSzDepCompareFactor3vsTrivialExSettings extends BaseExperimentSettings {
	@IgnoreWhenCheck
	@Hidden
	private IGraphGenerator graphGenerator = GraphSupportFront.expensiveCheapGenerator();

	@Increase(value = 50, boundBegin = 50, boundEnd = 1000)
	public int citiesCountBeg = -1;
	@Increase(value = 50, boundBegin = 100, boundEnd = 1000)
	public int citiesCountEnd = -1;

	@Increase(value = 20, boundBegin = 5, boundEnd = 300)
	public int facilitiesCountBeg = -1;
	@Increase(value = 20, boundBegin = 5, boundEnd = 300)
	public int facilitiesCountEnd = -1;

	@Increase(value = 1, boundBegin = 2, boundEnd = 150)
	public int neighborCountBeg = -1;
	@Increase(value = 1, boundBegin = 1, boundEnd = 100)
	public int neighborCountRange = -1;

	@Increase(value = 20, boundBegin = 0, boundEnd = Double.MAX_VALUE)
	public double cheapEdgeBeg = -1;
	@Increase(value = 10, boundBegin = 1, boundEnd = Double.MAX_VALUE)
	public double cheapEdgeRange = -1;
	@Increase(value = 20, boundBegin = 0, boundEnd = Double.MAX_VALUE)
	public double expensiveEdgeBeg = -1;
	@Increase(value = 10, boundBegin = 1, boundEnd = Double.MAX_VALUE)
	public double expensiveEdgeRange = -1;

	@Increase(value = 20, boundBegin = 0, boundEnd = Double.MAX_VALUE)
	public double facilityPriceBeg = -1;
	@Increase(value = 10, boundBegin = 1, boundEnd = Double.MAX_VALUE)
	public double facilityPriceRange = -1;

	@Increase(value = 1, boundBegin = 0, boundEnd = 1)
	public boolean triangleIneqEnabled = false;

	public FGraphSzDepCompareFactor3vsTrivialExSettings() {
		experimentContextFactory = new GrSzContextFactory();
		experiment = new GrSzExperiment();
	}

	public IGraphGenerator getGraphGenerator() {
		return graphGenerator;
	}
}
